Class AnimaliReadNoInt

java.lang.Object
  |
  +--AnimaliReadNoInt

public class AnimaliReadNoInt
extends java.lang.Object

Questa classe usa la gerarchia di animali introdotta come esempio per le classi astratte. TUTTAVIA la classe base Animale ora implementa l'interfaccia java.io.Serializable: di conseguenza la implementano automaticamente anche tutte le sottoclassi.
Il nome del file da cui leggere si suppone passato come (unico) argomento dalla linea di comando.
A differenza del caso mostrato in AnimaliReread, qui il file contiene solo oggetti: non c'č alcun intero a indicarne il numero. E' quindi necessario un ciclo per leggere i diversi oggetti uno ad uno, accorgendosi della fine dello stream.

NB: le classi relative agli animali si suppongono impacchettate in un file jar disponibile nella cartella corrente.

Quindi, per compilare:

javac -classpath animali.jar AnimaliReadNoInt.java

Mentre per eseguire:

java -classpath animali.jar;. AnimaliReadNoInt animals.dat

Da notare la cartella corrente (.) nell'elenco delle cartelle specificate nel classpath.


Constructor Summary
AnimaliReadNoInt()
           
 
Method Summary
static void main(java.lang.String[] args)
          Rilegge animali da un file binario, senza avere informazioni a priori sul loro numero.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AnimaliReadNoInt

public AnimaliReadNoInt()
Method Detail

main

public static void main(java.lang.String[] args)
Rilegge animali da un file binario, senza avere informazioni a priori sul loro numero. Per questo utilizza un Vector per accumulare gli oggetti via via letti. Attenzione: la readObject assume che lo stream contenga un Object, quindi scatterā una eccezione dopo aver letto l'ultimo oggetto. (soluzione migliore: salvare un Vector o un'altra struttura che contenga gli oggetti, in modo da sapere quante operazioni di lettura fare.)